import 'package:flutter/painting.dart';
import 'package:ideology/shared/widgets/code_input/highlight/highlight_theme.dart';
import 'package:ideology/shared/widgets/code_input/highlight/syntax_highlighter.dart';
import 'package:ideology/shared/widgets/code_input/highlight/syntax_preset.dart';

/// 构建一个“纯文本”预设，不做任何语法高亮。
///
/// 特点：
/// - 使用 [HighlightTheme.plain]，即整段文字采用统一的 [base] 样式，
///   一般表现为黑色或外部指定颜色；
/// - [SyntaxHighlighter] 的 `keywords` 集合为空，
///   因此不会对任何单词/符号应用语法着色；
///
/// 适用场景：
/// - 编辑普通文本或配置文件，不需要语法高亮；
/// - 在需要统一配色或 debug 环境下，禁用高亮以排查问题。
///
/// ### 用法示例
/// ```dart
/// final preset = makePlainPreset(
///   const TextStyle(fontFamily: 'Fira Code', fontSize: 14, color: Color(0xFF000000)),
/// );
///
/// // 将 preset.theme 和 preset.highlighter 注入到代码输入/编辑控件
/// // 效果：所有文字均为统一颜色，无关键字高亮
/// ```
SyntaxPreset makePlainPreset(TextStyle base) {
  // 1. 使用“plain”主题：无配色差异，纯文本样式
  final theme = HighlightTheme.plain(base: base);

  // 2. 创建语法高亮器，但关键字集合为空 => 不进行高亮
  final highlighter = SyntaxHighlighter(
    keywords: const <String>{}, // 空集合：表示没有任何保留字
    theme: theme,
  );

  // 3. 打包为 SyntaxPreset 返回
  return SyntaxPreset(highlighter: highlighter, theme: theme);
}
